package com.ruoyi.production.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 工单对象 work_order_info
 *
 * @author ruoyi
 * @date 2022-09-01
 */
public class WorkOrderInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 工单编号
     */
    @Excel(name = "工单编号")
    private String workOrderNo;

    /**
     * 工单主题
     */
    @Excel(name = "工单主题")
    private String workOrderTheme;

    /**
     * 项目编号
     */
    private String projectNo;

    @Excel(name = "关联项目")
    private String projectName;

    @Excel(name = "构件概要")
    private String componentSummary;

    /**
     * 生产计划编号
     */
    @Excel(name = "生产计划编号")
    private String planNo;


    /**
     * 工艺流程编号
     */
    @Excel(name = "工艺流程编号")
    private String processNo;

    @Excel(name = "是否领料")
    private String whetherPick;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String status;

    @Excel(name = "生产进度")
    private String productionProgress;
    @Excel(name = "工单排产数量")
    private String numberProductionSchedules;
    @Excel(name = "工单排产量(t)")
    private Float workOrderOutput;
    @Excel(name = "已产出量(t)")
    private Float output;
    @Excel(name = "已产数量")
    private long quantityProduced;

    /**
     * 计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workBeginTime;

    /**
     * 计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date workEndTime;
    @Excel(name = "工序数量")
    private int numberOperations;
    /**
     * 备注
     */
    private String comment;
    //构件总数量：250     构件总重量：377t
    private Long componentsTotalNumber;
    private Double componentsTotalWeight;

    public Long getComponentsTotalNumber() {
        return componentsTotalNumber;
    }

    public void setComponentsTotalNumber(Long componentsTotalNumber) {
        this.componentsTotalNumber = componentsTotalNumber;
    }

    public Double getComponentsTotalWeight() {
        return componentsTotalWeight;
    }

    public void setComponentsTotalWeight(Double componentsTotalWeight) {
        this.componentsTotalWeight = componentsTotalWeight;
    }

    /**
     * 生产计划信息
     */
    private List<PlanModelInfo> planModelInfoList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setWorkOrderNo(String workOrderNo) {
        this.workOrderNo = workOrderNo;
    }

    public String getWorkOrderNo() {
        return workOrderNo;
    }

    public void setWorkOrderTheme(String workOrderTheme) {
        this.workOrderTheme = workOrderTheme;
    }

    public String getWorkOrderTheme() {
        return workOrderTheme;
    }

    public void setPlanNo(String planNo) {
        this.planNo = planNo;
    }

    public String getPlanNo() {
        return planNo;
    }

    public void setWorkBeginTime(Date workBeginTime) {
        this.workBeginTime = workBeginTime;
    }

    public Date getWorkBeginTime() {
        return workBeginTime;
    }

    public void setWorkEndTime(Date workEndTime) {
        this.workEndTime = workEndTime;
    }

    public Date getWorkEndTime() {
        return workEndTime;
    }

    public void setProcessNo(String processNo) {
        this.processNo = processNo;
    }

    public String getProcessNo() {
        return processNo;
    }

    public void setProjectNo(String projectNo) {
        this.projectNo = projectNo;
    }

    public String getProjectNo() {
        return projectNo;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getComment() {
        return comment;
    }

    public List<PlanModelInfo> getPlanModelInfoList() {
        return planModelInfoList;
    }

    public void setPlanModelInfoList(List<PlanModelInfo> planModelInfoList) {
        this.planModelInfoList = planModelInfoList;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getComponentSummary() {
        return componentSummary;
    }

    public void setComponentSummary(String componentSummary) {
        this.componentSummary = componentSummary;
    }

    public String getWhetherPick() {
        return whetherPick;
    }

    public void setWhetherPick(String whetherPick) {
        this.whetherPick = whetherPick;
    }

    public String getProductionProgress() {
        return productionProgress;
    }

    public void setProductionProgress(String productionProgress) {
        this.productionProgress = productionProgress;
    }



    public Float getWorkOrderOutput() {
        return workOrderOutput;
    }

    public void setWorkOrderOutput(Float workOrderOutput) {
        this.workOrderOutput = workOrderOutput;
    }

    public Float getOutput() {
        return output;
    }

    public void setOutput(Float output) {
        this.output = output;
    }

    public long getQuantityProduced() {
        return quantityProduced;
    }

    public void setQuantityProduced(long quantityProduced) {
        this.quantityProduced = quantityProduced;
    }

    public String getNumberProductionSchedules() {
        return numberProductionSchedules;
    }

    public void setNumberProductionSchedules(String numberProductionSchedules) {
        this.numberProductionSchedules = numberProductionSchedules;
    }

    public int getNumberOperations() {
        return numberOperations;
    }

    public void setNumberOperations(int numberOperations) {
        this.numberOperations = numberOperations;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("workOrderNo", getWorkOrderNo())
                .append("workOrderTheme", getWorkOrderTheme())
                .append("planNo", getPlanNo())
                .append("workBeginTime", getWorkBeginTime())
                .append("workEndTime", getWorkEndTime())
                .append("processNo", getProcessNo())
                .append("projectNo", getProjectNo())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("status", getStatus())
                .append("comment", getComment())
                .append("planModelInfoList", getPlanModelInfoList())
                .toString();
    }
}
